// *******************************************************************************************************
// # エリア
//   ・路線図
// *******************************************************************************************************

$(function(){
	var isUnderIe6 = uaInfo.isIe && uaInfo.ieVr <= 6,
	isUnderIe7 = uaInfo.isIe && uaInfo.ieVr <= 7,
	isUnderIe8 = uaInfo.isIe && uaInfo.ieVr <= 8;

	/*******************************************************
	 *　選択した駅名で探すラッパー
	 *******************************************************/
	var appendWrapper = new APMN.AppendWrapper({
		isFixed: false,
		ieVr: !(isUnderIe6)
	});
	
	
	/*******************************************************
	 *　Inputボタン
	 *******************************************************/
	function inputBoxCheck(){
		var isSelected = null,
			$btn = $('.mod_btn_append a');
	
		$('.mod_box_search_list').find('.box_category').each(function(i){
			var $self = $(this);
			if (!isUnderIe7) {
				$self.find('li input').on('ifChecked', function(e){
					change();
				}).on('ifUnchecked', function(e){
					change();
				});

				//add nak 2015.01.23
				$(".iCheck-helper").css({'opacity' : 0});

			} else {
				$self.find('li input').on('click', function(e){
					change();
				});
			};
		});
		
		function change(){
			var isSlt = false;
			$('.mod_check').each(function(e){
				if ($(this).find('input').prop('checked')) {
					isSlt = true;
					return false;
				};
			});
			if (isSelected != isSlt) {
				isSelected = isSlt;
				if (isSelected) {
					$btn.removeClass('mod_btn_disabled');
					appendWrapper.show();
				} else {
					$btn.addClass('mod_btn_disabled');
					appendWrapper.hide();
				};
			};
		};
	
		$('.mod_check').each(function(e){
			var $self = $(this);
			if ($self.find('input').prop('checked')) {
				$self.addClass('mod_checked');
			};
			$self.find('a').on('click', function(e){
				e.stopPropagation();
			});
		});
		change();
	};
	
	
	/*******************************************************
	 *　分岐ボタン
	 *******************************************************/
	function bunkiButton(){
		$('.btn_right a.scroll').on('click', function(e){
			e.preventDefault();
			var href = $(this).attr('href').substr(1);
			$('.box_category').each(function(i){
				if ($(this).attr('id') == href) {
					if (!toggles[i][0].isOpen) {
						toggles[i][1].find('h3').trigger('click');
					};
					return false;
				};
			});
		});
	};
	
	
	/*******************************************************
	 *　路線図開閉
	 *******************************************************/
	var isBaseOpen = false,
		toggles = [];
	
	function lineToggleCheck(){
		$('.box_category').each(function(i){
			var $self = $(this),
				myId  = i + 1;
			var lineToggle = new APMN.ToggleOpener({
				btn: $self.find('h3'),
				target: $self.find('.line_group'),
				isOpen: $self.find('h3').hasClass('cts_open')
			});
			lineToggle.toggle = function(b) {
				if (b) {
					$self.find('h3').addClass('cts_open');
				} else {
					$self.find('h3').removeClass('cts_open');
				};
				if (myId == 1) {
					isBaseOpen = b;
				};
			};
			lineToggle.moving = function(b) {
				appendWrapper.changeCtsHeight();
			};

			toggles.push([lineToggle, $self]);
			if (myId == 1) {
				isBaseOpen = lineToggle.isOpen;
			};
		});
	};
	
	
	/*******************************************************
	 *　がたんごとん〜べあ
	 *******************************************************/
	function bearMoving(){
		var $bear = $('.box_category span.bear'),
			hedH = 44,
			berH = 220,
			berT = $bear.offset().top,
			berM = $bear.next().height(),
			berD = 30,
			berTimer = null;
	
		$(window).on('scroll', function(e){
			clearTimeout(berTimer);
			if (!isBaseOpen) return;
			berTimer = setTimeout(function(e){
				var t = $(window).scrollTop();
				if (t + hedH < berT) {
					if ($bear.css('top') != 0) {
						$bear.stop().animate({ 'top': 0 }, 600, 'easeOutQuart');
					};
				}
				else if (t + hedH > berT + berM - berH - berD) {
					if ($bear.css('top') != berM - berH) {
						$bear.stop().animate({ 'top': berM - berH }, 600, 'easeOutQuart');
					};
				}
				else {
					$bear.stop().animate({ 'top': t - berT + hedH + berD }, 600, 'easeOutQuart');
				}
			}, 600);
		});
	};
	
	
	/*******************************************************/
	// 地域 追加・削除
	function areaModalSetting(){
		var $navi = $('#contentTabArea');
		var $btn = $navi.find('.btn_right a.button_modal');
	
		$btn.on('click', function(e){
			e.preventDefault();
			
			//乗り換える沿線
			var transferList = e.target.id;
			//都道府県名前
			var renName = $(this).attr('name').substring(3);
			
			//違う都道府県→非表示
			$('#modal_result_line').find('section.box_category').each(function(){
				$(this).show();
				var secName = $(this).attr('name').substring(3);
				if(renName != secName) $(this).hide();	//違う都道府県→非表示	
			});
			
			//クリックされた駅の乗り換える路線じゃないと→非表示
			$('#modal_result_line').find('section.box_category').each(function(){
				
				if($(this).css('display') == 'none') return;
				
				var childCount = $(this).find('li.mod_check').length;				
				//路線ループ
				var count = 0;
				$(this).find('li.mod_check').each(function(){
					var id =$(this).attr('id');
					if(transferList.indexOf(id) < 0){
						$(this).hide();
						count += 1;
					}
					else{
						$(this).show();
					}
				});
				
				//alert(childCount + '-' + count);
				//すべて路線非表示→会社も非表示				
				if(count == childCount) $(this).hide();		
				else $(this).show();
				//すべて路線非表示→会社も非表示
				
			});					
			
			$('html,body').stop().animate({ scrollTop: 0 }, 1 );			
			show();
		});
	
		// モーダル
		var $modal = $('#modal_result_line'),
			modal = null,
			defInput = [],
			dispatch = true;
	
		modal = new APMN.Modal({
			target: $modal,
			close:  $modal.find('.modal_close'),
			ieVr: !(isUnderIe6),
			nonAppend: true
		});
		function init(){
						
			$modal.find('.mod_btn_append a').on('click', function(e){
				//
			});
			
			$modal.find('.btn_close a').on('click', function(e){
				e.preventDefault();
				hide();
			});
			$modal.find('.box_category').each(function(i){
				var $self = $(this);
				if (!isUnderIe7) {
					$self.find('.mod_ttl_bar input').on('ifChecked', function(e){
						if (dispatch) return;
						dispatch = true;
						$self.find('li input').iCheck('check');
						change();
					}).on('ifUnchecked', function(e){
						if (dispatch) return;
						dispatch = true;
						$self.find('li input').iCheck('uncheck');
						change();
					});
					$self.find('li input').each(function(j){
						$(this).on('ifChecked', function(e){
							if (dispatch) return;
							dispatch = true;
							change();
						}).on('ifUnchecked', function(e){
							if (dispatch) return;
							dispatch = true;
							if ($self.find('.mod_ttl_bar.mod_check').hasClass('mod_checked')) {
								$self.find('.mod_ttl_bar input').iCheck('uncheck');
							};
							change();
						});
					});
				} else {
					$self.find('.mod_ttl_bar input').on('click', function(e){
						var b = $(this).prop('checked');
						$self.find('li input').prop('checked', b);
						change();
					});
					$self.find('li input').each(function(j){
						$(this).on('click', function(e){
							var b = $(this).prop('checked');
							if (!b) {
								$self.find('.mod_ttl_bar input').prop('checked', false);
							};
							change();
						});
					});
				};
			});
			$modal.find('.mod_check').each(function(e){
				defInput.push($(this).hasClass('mod_checked'));
			});
			change();
		};
		function change(){
			dispatch = false;
		};
		function show(){
			
			$modal.find('a.mod_btn_blue').each(function(i){
				$(this).removeAttr('style');
			});
			
			$modal.find('input').each(function(i){
				if (!isUnderIe7) {
					if (defInput[i]) $(this).iCheck('check');
					else $(this).iCheck('uncheck');
				} else {
					$(this).prop('checked', defInput[i]);
				};
			});			
			modal.show();
		};
		function hide(){
			modal.hide();
		};
		init();
	};
	
	
	// init
	inputBoxCheck();
	bunkiButton();
	lineToggleCheck();
	bearMoving();
	areaModalSetting();

	function submit(action, method, values) {
		//すべてのhiddenフィールドを自動追加
		//$('input[type=hidden]').each(function(index){
		//こだわりだけに変更
		$('#KodawariId').each(function(index){
			var elem = $(this);
			var val = elem.attr("value");

			values.push({name:elem.attr("id"), value:val});
						
		});
		
 	   var form = $('<form/>', {
	        action: action,
	        method: method
	    });
	    $.each(values, function() {
	        form.append($('<input/>', {
	            type: 'hidden',
	            name: this.name,
	            value: this.value
	        }));    
	    });
	    form.appendTo('body').submit();
	}

	$(".mod_btn_all").click(function() {
		if($(this).attr('id') == 'btnSimpleSearch') return; //簡単検索
		
		var items = APMN.parseConditionCookie();
		items.push({name:'search_type',value:'line'});
		$('label.mod_checked').each(function(index){
			items.push({name:'target_'+index,
				    value:$(this).attr("id")});			
		});
		//★★★賃料、間取りクッキーがなければ→希望条件ページに転移
		if(!APMN.hadSearch()){
			submit('/area/hope/','POST',items);
		}
		//★★★賃料、間取りクッキーがあれば→結果一覧ページに転移
		else {
			items.push({name:'page',value:1});
			submit('/rstobi/rstobi','POST',items);
		}
	});
	
	//★★★リンククリックの場合も→クッキーがなければ→希望条件遷移
	$('.mod_check').find('a.mod_btn').on('click', function(e){
		
		if($(this).attr('name') == 'transfer') return;
		
		e.preventDefault();
		
		var params =APMN.parseConditionCookie(); 
		var items = params;
		items.push({name:'search_type',value:'line'});
		
		var id = $(this).parent().attr("id");
		items.push({name:'target_0', value:id});
				
		if(APMN.hadSearch()){
			items.push({name:'page',value:1});
			submit('/rstobi/rstobi','POST',items);			
		}
		else {
			submit('/area/hope/','POST',items);						
		}
		
	});
	//★★★リンククリックの場合も→クッキーがなければ→希望条件遷移
	
	/*
	/******************************************************
	 * 賃料、間取りクッキーがあれば、希望条件ページ飛ぶ
	 ******************************************************/
	function updateLink(){		
		if(!APMN.hadSearch()){
			$('label.mod_check a').each(function(){
				var href = $(this).attr('href');
				$(this).attr('href', href + 'hope/');
			});						
		}
	};
	updateLink();
});